{"version":3,"file":"static/chunks/pages/blog/[slug]-bd9188df0b119f66.js","mappings":"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","sources":["webpack://_N_E/?5839","webpack://_N_E/./src/utils/copyToClipboard.ts","webpack://_N_E/./src/components/CopyButton.tsx","webpack://_N_E/./src/components/CodeBlock.tsx","webpack://_N_E/./src/components/CodeBlockWithLanguageSelector.tsx","webpack://_N_E/./src/components/LetterTypingText.tsx","webpack://_N_E/../node_modules/lucide-react/dist/esm/icons/plus.js","webpack://_N_E/./src/hooks/useSize.ts","webpack://_N_E/./src/components/Faq.tsx","webpack://_N_E/./src/components/CallToAction.tsx","webpack://_N_E/./src/pages/blog/[slug].tsx","webpack://_N_E/./src/sections/blog/MDXRenderer.tsx","webpack://_N_E/./src/sections/blog/PostCard.tsx","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/blog/[slug]\",\n function () {\n return require(\"private-next-pages/blog/[slug].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/blog/[slug]\"])\n });\n }\n ","export const copyToClipboard = (\n text: string | number,\n {\n callback\n }: {\n callback?: () => void\n } = {}\n) => {\n async function copyToClipboard(textToCopy: string) {\n // Navigator clipboard api needs a secure context (https)\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(textToCopy)\n } else {\n // Use the 'out of viewport hidden text area' trick\n const textArea = document.createElement('textarea')\n textArea.value = textToCopy\n\n // Move textarea out of the viewport so it's not visible\n textArea.style.position = 'absolute'\n textArea.style.left = '-999999px'\n\n document.body.prepend(textArea)\n textArea.select()\n\n try {\n document.execCommand('copy')\n } catch (error) {\n console.error(error)\n } finally {\n textArea.remove()\n }\n }\n }\n\n copyToClipboard(String(text)).then(() => {\n callback?.()\n })\n}\n","import { FC, useState } from 'react'\nimport { copyToClipboard } from '~/utils/copyToClipboard'\nimport { Button } from '~/components/Button'\nimport { CopyCheck, CopyIcon } from 'lucide-react'\n\nexport const CopyButton: FC<{ text: string }> = ({ text }) => {\n const [copied, setCopied] = useState(false)\n const copy = () => {\n setCopied(true)\n copyToClipboard(text, {\n callback: () => {\n setTimeout(() => {\n setCopied(false)\n }, 800)\n }\n })\n }\n return (\n \n )\n}\n","import { CSSProperties, PropsWithoutRef, forwardRef, ReactNode, Children } from 'react'\nimport { materialDark as codeTheme } from 'react-syntax-highlighter/dist/cjs/styles/prism'\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'\nimport cx from 'classnames'\n\nimport { CopyButton } from '~/components/CopyButton'\n\nconst PreStyles: CSSProperties = {\n textAlign: 'left',\n whiteSpace: 'pre',\n wordSpacing: 'normal',\n wordBreak: 'normal',\n overflowWrap: 'normal',\n color: 'rgb(195, 206, 227)',\n background: '#131313',\n fontSize: '1em',\n hyphens: 'none',\n overflow: 'auto',\n position: 'relative'\n}\n\nconst override = {\n ...codeTheme,\n 'code[class*=\"language-\"]': {\n ...codeTheme['code[class*=\"language-\"]'],\n background: 'inherit',\n fontFamily: 'var(--font-jet-brains-mono) !important'\n }\n}\n\nexport const CodeBlock = forwardRef<\n HTMLDivElement,\n PropsWithoutRef<{\n code: string\n className?: string\n wrapperClassName?: string\n preClassName?: string\n style?: CSSProperties\n showLineNumbers?: boolean\n language?: string\n children?: ReactNode\n copyButton?: boolean\n }>\n>(\n (\n {\n code,\n className,\n showLineNumbers = false,\n preClassName,\n wrapperClassName,\n children: extra,\n copyButton,\n style,\n language = 'javascript'\n },\n ref\n ) => {\n return (\n
\n (\n \n
{children}
\n {Children.count(extra) || copyButton ?\n
\n {extra}\n {copyButton && }\n
\n : null}\n
\n )}\n >\n {code}\n \n \n )\n }\n)\n\nCodeBlock.displayName = 'CodeBlock'\n","import { CSSProperties, PropsWithoutRef, forwardRef, ReactNode, useContext, useCallback } from 'react'\n\nimport { CodeBlock } from '~/components/CodeBlock'\nimport Image from 'next/image'\n\nimport cn from 'classnames'\nimport { CodingLanguage } from '~/contexts/CodingLanguage'\n\ntype CodeBlockWithLanguageSelectorProps = {\n data: Record\n className?: string\n wrapperClassName?: string\n preClassName?: string\n style?: CSSProperties\n children?: ReactNode\n copyButton?: boolean\n}\n\nconst PyLogo = ({ className }: { className: string }) => (\n \n)\nconst TsLogo = ({ className }: { className: string }) => (\n \n)\n\nconst langLogoMap = {\n python: PyLogo,\n typescript: TsLogo\n}\n\nconst Logo = ({ lang, className }: { lang: string; className: string }) => {\n // @ts-ignore\n const Comp = langLogoMap[lang]\n\n return \n}\n\nexport const CodeBlockWithLanguageSelector = forwardRef<\n HTMLDivElement,\n PropsWithoutRef\n>(({ data, className, preClassName, wrapperClassName, children: extra, copyButton, style }, ref) => {\n const { language, setLanguage: setLang } = useContext(CodingLanguage)\n\n const setLanguage = useCallback((lang: string) => setLang(lang), [language])\n\n return (\n
\n
\n {Object.keys(data).map((key) => (\n setLanguage(key)}\n className={cn('flex w-full grow items-center justify-center py-2 transition hover:grayscale-0', {\n grayscale: key !== language,\n 'border-b': key === language,\n 'text-content3': key !== language\n })}\n >\n {key} \n
\n ))}\n
\n\n \n {extra}\n \n \n )\n})\n\nCodeBlockWithLanguageSelector.displayName = 'CodeBlockWithLanguageSelector'\n","import { motion } from 'framer-motion'\n\n// function useWaypoint() {\n// const ref = useRef(null);\n// const isInView = useInView(ref, { margin: \"400px 0px 0px 0px\", once: true });\n// return { ref, isInView } as const;\n// }\n\nconst sentence = {\n hidden: {\n // opacity: 1,\n },\n visible: {\n // opacity: 1,\n transition: { delay: 0.05, staggerChildren: 0.008 }\n }\n}\n\nconst letter = {\n hidden: {\n opacity: 0,\n y: 50\n },\n visible: {\n opacity: 1,\n y: 0\n }\n}\n\nconst renderChars = (str: string, className?: string) =>\n str?.split('').map((ch, idx) => (\n \n {ch}\n \n ))\n\nexport const LetterTypingText = ({\n animate,\n children: text,\n animateInView = true,\n as,\n ...props\n}: TPolymorphicComponentProps & {\n animate?: boolean\n animateInView?: boolean\n children: string\n}) => {\n const Element = as ?? 'span'\n\n return (\n \n \n {renderChars(text)}\n \n \n )\n}\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n];\nconst Plus = createLucideIcon(\"Plus\", __iconNode);\n\nexport { __iconNode, Plus as default };\n//# sourceMappingURL=plus.js.map\n","import { useEffect, useRef, useState } from \"react\"\n\ntype Size = {\n width: number\n height: number\n}\n\nexport const useSize = () => {\n const [size, setSize] = useState({\n width: 0,\n height: 0,\n })\n const ref = useRef(null)\n\n useEffect(() => {\n if (ref.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0]\n const borderSizeEntry = entry[\"borderBoxSize\"]\n const borderSize = Array.isArray(borderSizeEntry)\n ? borderSizeEntry[0]\n : borderSizeEntry\n\n setSize({\n width: borderSize[\"inlineSize\"],\n height: borderSize[\"blockSize\"],\n })\n })\n\n resizeObserver.observe(ref.current)\n\n return () => {\n resizeObserver.disconnect()\n }\n }\n }, [])\n\n return { width: size.width, height: size.height, ref }\n}\n","import classNames from 'classnames'\nimport { motion } from 'framer-motion'\nimport { Plus } from 'lucide-react'\nimport { useState } from 'react'\nimport { IconButton } from '~/components/IconButton'\nimport { useSize } from '~/hooks/useSize'\n\nfunction FaqItem({\n question,\n answer,\n open,\n onClick\n}: {\n question: string\n answer: string\n open: boolean\n onClick?: () => void\n}) {\n const { height, ref } = useSize()\n\n return (\n
  • \n \n {question}\n\n \n \n \n \n\n \n

    \n {answer}\n

    \n \n
  • \n )\n}\n\nexport const Faq = ({\n items,\n className\n}: {\n items: { question: string; answer: string }[]\n className?: string\n}) => {\n const [activeIndex, setActiveIndex] = useState(0)\n\n return (\n
      \n {items.map((item, index) => (\n setActiveIndex(index)} {...item} />\n ))}\n
    \n )\n}\n","import { MainCta } from '~/components/Button'\n\nexport const CallToAction = ({\n text = 'Ship Features, Not Infrastructure - Try RushDB Cloud Today',\n buttonText = 'Get Started Now',\n description = \"Leverage RushDB's graph-powered, zero-config database to build modern apps faster. Push data, query intelligently, and focus on features while RushDB handles the complexity.\"\n}: {\n text?: string\n description?: string\n buttonText?: string\n}) => (\n
    \n
    \n

    {text}

    \n\n {description &&

    {description}

    }\n \n {buttonText}\n \n
    \n
    \n)\n","import { MDXRemoteSerializeResult } from 'next-mdx-remote'\nimport { serialize } from 'next-mdx-remote/serialize'\n\nimport { Layout } from '~/components/Layout'\nimport { GetStaticPaths, GetStaticProps } from 'next'\nimport { LetterTypingText } from '~/components/LetterTypingText'\nimport { getBlogPost, getBlogPosts } from '~/sections/blog/utils'\nimport { Post } from '~/sections/blog/types'\nimport { MDXRenderer } from '~/sections/blog/MDXRenderer'\nimport { PostCard } from '~/sections/blog/PostCard'\nimport Head from 'next/head'\nimport { getAbsoluteURL } from '~/utils'\nimport { Faq } from '~/components/Faq'\nimport { CallToAction } from '~/components/CallToAction'\nimport remarkGfm from 'remark-gfm'\n\ntype Props = {\n serializedPost: MDXRemoteSerializeResult\n data: Post['data']\n morePosts: Array\n}\n\ntype Params = {\n slug: string\n}\n\nexport default function PostPage({ serializedPost, data, morePosts }: Props) {\n return (\n \n \n {data?.noindex ?\n \n : }\n \n \n
    \n
    \n \n\n

    FAQ

    \n \n
    \n
    \n {morePosts?.length > 0 && (\n
    \n
    \n \n More Blog Posts\n \n\n
    \n {morePosts.slice(0, 3).map((post, idx) => (\n \n ))}\n
    \n
    \n
    \n )}\n
    \n )\n}\n\nexport const getStaticProps: GetStaticProps = async ({ params }) => {\n if (!params?.slug) {\n return {\n notFound: true\n }\n }\n\n const post = getBlogPost(params.slug)\n\n const serializedPost = await serialize(post.content, {\n mdxOptions: {\n remarkPlugins: [remarkGfm]\n },\n scope: post.data\n })\n\n const morePosts = getBlogPosts()\n .filter((post) => post.slug !== params.slug)\n .slice(0, 3)\n\n return {\n props: {\n serializedPost,\n data: post.data,\n morePosts\n }\n }\n}\n\nexport const getStaticPaths: GetStaticPaths = async () => {\n const paths = getBlogPosts().map(({ slug }) => ({\n params: { slug }\n }))\n\n return {\n paths,\n fallback: false\n }\n}\n","import { MDXRemote } from 'next-mdx-remote'\nimport { ComponentPropsWithoutRef, isValidElement } from 'react'\nimport { CodeBlock } from '~/components/CodeBlock'\nimport { Post } from '~/sections/blog/types'\nimport { Mermaid } from 'mdx-mermaid/lib/Mermaid'\nimport { CodeBlockWithLanguageSelector } from '~/components/CodeBlockWithLanguageSelector'\n\nconst Pre = ({ children, ...props }: ComponentPropsWithoutRef<'pre'>) => {\n if (isValidElement(children) && children.type === 'code') {\n const language = children.props.className.split('-').pop()\n const code = children.props.children\n\n if (language === 'mermaid') {\n return (\n
    \n \n
    \n )\n }\n\n if (language === 'sdk') {\n const [python, typescript] = code.split('___SPLIT___')\n return \n }\n\n return (\n \n )\n }\n\n return null\n}\n\nconst getPostComponents = () => ({\n pre: Pre\n})\nexport function MDXRenderer({\n data,\n showDate,\n ...props\n}: Omit, 'components'> & {\n data: Post['data']\n showDate?: boolean\n}) {\n const components = getPostComponents() as unknown as null\n\n return (\n
    \n
    \n \n
    \n
    \n {data.date && showDate ?\n

    {data.date}

    \n : null}\n

    RushDB Team

    \n
    \n
    \n )\n}\n","import classNames from 'classnames'\nimport Image from 'next/image'\nimport Link from 'next/link'\nimport { LetterTypingText } from '~/components/LetterTypingText'\nimport { Post } from '~/sections/blog/types'\n\nexport function PostCard({ post, className }: { post: Post; className?: string }) {\n return (\n div]:h-full',\n className\n )}\n >\n {post.data.image && (\n
    \n \"\"\n
    \n )}\n\n
    \n

    {post.data.date}

    \n\n \n {post.data.title as string}\n \n
    \n \n )\n}\n"],"names":["window","__NEXT_P","push","__webpack_require__","copyToClipboard","text","callback","arguments","length","textToCopy","navigator","clipboard","isSecureContext","writeText","textArea","document","createElement","value","style","position","left","body","prepend","select","execCommand","error","console","remove","String","then","CopyButton","param","copied","setCopied","useState","jsx_runtime","jsx","Button","variant","onClick","setTimeout","size","className","CopyCheck","CopyIcon","PreStyles","textAlign","whiteSpace","wordSpacing","wordBreak","overflowWrap","color","background","fontSize","hyphens","overflow","override","codeTheme","fontFamily","CodeBlock","forwardRef","ref","code","showLineNumbers","preClassName","wrapperClassName","children","extra","copyButton","language","div","cx","SyntaxHighlighter","PreTag","jsxs","pre","Children","count","displayName","langLogoMap","python","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","Image","src","alt","width","height","priority","typescript","Logo","lang","Comp","CodeBlockWithLanguageSelector","data","setLanguage","setLang","useContext","CodingLanguage","useCallback","cn","Object","keys","map","key","grayscale","sentence","hidden","visible","transition","delay","staggerChildren","letter","opacity","y","renderChars","str","split","ch","idx","motion","span","variants","LetterTypingText","animate","animateInView","as","props","Element","aria-label","initial","viewport","once","whileInView","aria-hidden","Plus","createLucideIcon","Z","d","useSize","setSize","useRef","useEffect","current","resizeObserver","ResizeObserver","entry","entries","borderSizeEntry","borderSize","Array","isArray","observe","disconnect","FaqItem","question","answer","open","li","h5","classNames","IconButton","exit","type","duration","bounce","p","Faq","items","activeIndex","setActiveIndex","ul","item","index","CallToAction","buttonText","description","MainCta","PostPage","serializedPost","morePosts","Layout","title","image","getAbsoluteURL","Head","noindex","meta","name","content","MDXRenderer","showDate","h4","section","slice","post","PostCard","slug","Pre","isValidElement","pop","Mermaid","chart","replace","getPostComponents","components","MDXRemote","date","Link","concat","href","fill"],"sourceRoot":""}